iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0

Transformer

前言

昨天提到的大型語言模型(LLM)依賴一個非常關鍵的技術架構——Transformer。它在自然語言處理(NLP)領域掀起了革命性的改變,讓語言生成和理解任務中提供了極大的效能提升。今天就讓我們一起來了解這個強大的模型架構吧!

Transformer 是什麼?

Transformer 是一種基於 自注意力機制(Self-Attention Mechanism) 的神經網路架構,由 Google 在 2017 年提出。它的目標是有效地處理序列資料(如文字、時間序列數據),特別擅長應對長距離相依性問題。這讓它在翻譯、對話生成、文本分類等任務中表現出色。

還記得在介紹RNN的時候是不是有提到傳統的遞迴式神經網路(RNN)在處理長序列資料時,依賴於逐步計算序列中每個元素之間的相依關係,這樣的設計不僅會導致訊息遺失,也難以捕捉長期依賴性。而且RNN必須按序列的順序進行運算,無法進行平行計算,效率比較低。

至於甚麼是Self-Attention Mechanism呢?我留到明天接續補充~

Transformer 架構

同樣都是為了解決傳統 RNN 在處理長序列時會丟失長距離依賴信息的問題。不過,它們在結構和解決問題的方式上有很大的不同。
首先來看看Transformer的架構圖:
image
Transformer 完全基於自注意力機制(Self-Attention Mechanism),摒棄了循環結構,使用多頭自注意力和前饋神經網絡來處理輸入和輸出序列。
但LSTM 是RNN的變形,透過輸入門、遺忘門和輸出門來控制訊息的流動,以此來達到有效捕捉長期依賴關係。

在上面的架構圖可以注意到Transformer的架構,主要由兩個部分組成:編碼器(Encoder)解碼器(Decoder)

  • 編碼器部分(左側)

    • Input Embedding:輸入的序列(例如詞彙)會先轉換成嵌入向量(embedding),這是每個詞的向量表示。
    • Positional Encoding:由於 Transformer 本身不具備序列的時間步概念,因此需要引入位置編碼(Positional Encoding)來讓模型了解輸入序列的順序。
    • Multi-Head Attention:這是 Transformer 的核心機制,利用**多頭自注意力(Multi-Head Self-Attention)**來讓每個輸入詞彙與其他所有詞進行關聯,捕捉整個序列的依賴關係。
    • Add & Norm:這是一種殘差連接,將多頭注意力的輸出和輸入相加,並進行正規化。
    • Feed Forward:每個編碼器層都有一個全連接層來進一步處理數據。
  • 解碼器部分(右側)

    • 解碼器結構與編碼器類似,但多了一個額外的部分:Masked Multi-Head Attention。這是為了確保在訓練生成時,解碼器只能看到之前的輸出,而不能看到未來的輸出,避免數據洩漏。
    • 解碼器的輸出會通過一個線性層,再進行 Softmax,生成對應的機率分布,代表模型對下一個詞的預測。

Transformer 在解決長距依賴和序列計算效率方面,對比 RNN 和 LSTM 具有顯著優勢。它通過自注意力機制能夠同時處理整個序列,並能捕捉到每個位置之間的依賴關係,極大提高了模型在處理長序列和大數據集上的表現。

運作過程

簡單舉個例子來讓大家更好理解。

  • RNN 或 LSTM 機器翻譯:
    • 在使用 RNN 或 LSTM 進行機器翻譯時,模型會逐字逐句地生成翻譯結果。比如在翻譯句子 "I am a student" 到中文 "我是一個學生" 時,LSTM 會首先接收 "I" 並生成其翻譯,然後接收 "am" ...,依次生成整個句子的翻譯。
  • Transformer 機器翻譯:
    image
    • Transformer 的設計讓它能夠一次性看到整個輸入句子。例如在翻譯 "I am a student" 時,所有的詞會同時被輸入編碼器,通過多頭自注意力機制,模型能夠理解句子內的所有詞之間的關係。解碼器在生成翻譯時,同樣能夠同時考慮已生成的翻譯和原句的全部內容。這使得翻譯更加精確和流暢,特別是在長句子中表現優越。

Transformer 的挑戰

在前面的介紹中,我們能發現雖然Transformer很厲害,但在厲害的背後也代表它需要大量計算資源,特別是在處理超大模型時,訓練成本是非常高的,因此顯而易見的他的缺點就是高運算成本
其次,Transformer的表現與訓練資料量成正比,通常需要超大量的資料來訓練模型,否則模型可能會出現過擬合或泛化能力不足的問題,所以需要大量資料也是他的一個問題。

結語

今天接著昨天的LLM講解了Transformer,這個技術是現代 NLP 領域不可或缺的技術,它大大提高了語言模型的效能與應用範圍。今天的介紹幫助大家更好地理解這個關鍵架構。明天我們可以進一步討論。
大家明天見!


上一篇
[Day 25] 了解大型語言模型(LLM):變革AI的核心技術
下一篇
[Day 27] Attention 機制與 Self-Attention 機制的比較與應用
系列文
深度學習的學習之旅:從理論到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

好文一生推~~~

我要留言

立即登入留言